using System;
using System.Collections.Generic;
using System.Text;

using Liberty.Domain.CaseManagement;

using Microsoft.VisualStudio.TestTools.UnitTesting;
//using NUnit.Framework.SyntaxHelpers;

using Peradigm.Framework.Persistence;
using Peradigm.Framework.Domain.Parties;

namespace Tests.DomainTests.CaseManagement
{
    [TestClass()]
    public class VisitTests : Object
    {
        #region Constants
        private const string
            FACILITY_HSPCODE = "DEL",
            FACILITY_NAME = "Delray",
            METHOD_OF_TRAVEL = "Plane",
            ORIGIN_OF_TRAVEL = "Paris, France";
        private const int
            TEST_NUMBER = 4;
        private const bool
            TEST_BOOL = false;
        private const long
            TEST_CASE_ID = 1L;
        private DateTime? TEST_DATE = DateTime.Parse( "05/05/2005" );
        #endregion

        #region Setup and TeardownVisitTests
        [TestInitialize()]
        public void SetupVisitTests()
        {
        }

        [TestCleanup()]
        public void TeardownVisitTests()
        {
        }
        #endregion

        #region Test Methods
        [TestMethod()]
        public void TestProperties()
        {
            Facility aFac = new Facility( FACILITY_HSPCODE, FACILITY_NAME );
            Visit aVisit = new Visit( PersistentModel.NEW_OID, PersistentModel.NEW_VERSION, aFac, TEST_BOOL );
            aVisit.ArrivalDate = TEST_DATE;
            aVisit.DischargeDate = TEST_DATE;            
            aVisit.FamilyArrival = TEST_DATE;
            aVisit.FamilyDepartureOn = TEST_DATE;            
            aVisit.HasInvitationalTravelOrders = TEST_BOOL;
            aVisit.MethodOfTravel = METHOD_OF_TRAVEL;
            aVisit.OriginOfTravel = ORIGIN_OF_TRAVEL;

            Assert.AreEqual( TEST_DATE, aVisit.ArrivalDate );
            Assert.AreEqual( TEST_DATE, aVisit.DischargeDate );
            Assert.AreEqual( aFac, aVisit.Facility );
            Assert.AreEqual( TEST_DATE, aVisit.FamilyDepartureOn );
            Assert.AreEqual( TEST_BOOL, aVisit.FamilyIsPresent );
            Assert.AreEqual( TEST_BOOL, aVisit.HasInvitationalTravelOrders );
            Assert.AreEqual( METHOD_OF_TRAVEL, aVisit.MethodOfTravel );
            Assert.AreEqual( ORIGIN_OF_TRAVEL, aVisit.OriginOfTravel );
        }
        #endregion

        #region Support Methods
        #endregion

        #region Data Elements
        #endregion
    }
}
